package exp2;

import java.util.*;

public class T9 {
    public static void add (ArrayList<Integer> a1, ArrayList<Integer> e1, ArrayList<Integer> a2, ArrayList<Integer> e2) {
        ArrayList<Integer> a3 = (ArrayList<Integer>) a2.clone();
        ArrayList<Integer> e3 = (ArrayList<Integer>) e2.clone();
        int i, j;
        for (i = 0; i < e1.size(); i++) {
			for (j = 0; j < e2.size(); j++) {
                if (e1.get(i) == e2.get(j)) {
                    a3.set(j, a1.get(i) + a2.get(j));
                    break;
                }
            }
            if (j == e2.size()) {
                e3.add(e1.get(i));
                a3.add(a1.get(i));
            }
        }
        System.out.print("add: " + a3.get(0) + "X^" + e3.get(0));
        for (i = 1; i < e3.size(); i++) {
            System.out.print(" + " + a3.get(i) + "X^" + e3.get(i));
        }
        System.out.println();
    }

    public static void mult(ArrayList<Integer> a1, ArrayList<Integer> e1, ArrayList<Integer> a2, ArrayList<Integer> e2) {
        ArrayList<Integer> a3 = new ArrayList<>();
        ArrayList<Integer> e3 = new ArrayList<>();
        int i, j, k;
        for (i = 0; i < e1.size(); i++) {
			for (j = 0; j < e2.size(); j++) {
                int zhishu = e1.get(i) + e2.get(j);
                int xishu = a1.get(i) * a2.get(j);
                for (k = 0; k < e3.size(); k++) {
                    if (e3.get(k) == zhishu) {
                        a3.set(k, a3.get(k) + xishu);
                        break;
                    }
                }
                if (k == e3.size()) {
                    e3.add(zhishu);
                    a3.add(xishu);
                }
            }
        }
        System.out.print("mult: " + a3.get(0) + "X^" + e3.get(0));
        for (i = 1; i < e3.size(); i++) {
            System.out.print(" + " + a3.get(i) + "X^" + e3.get(i));
        }
        System.out.println();
    }

    public static void main(String[] args) {
        ArrayList<Integer> a1 = new ArrayList<>();
        ArrayList<Integer> a2 = new ArrayList<>();
        ArrayList<Integer> e1 = new ArrayList<>();
        ArrayList<Integer> e2 = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        String[] str;
        System.out.print("XiShu1: ");
        str = sc.nextLine().split(",");
        for(int i = 0; i < str.length; i++) {
            a1.add(Integer.parseInt(str[i]));
        }
        System.out.print("ZhiShu1: ");
        str = sc.nextLine().split(",");
        for(int i = 0; i < str.length; i++) {
            e1.add(Integer.parseInt(str[i]));
        }
        System.out.print("XiShu2: ");
        str = sc.nextLine().split(",");
        for(int i = 0; i < str.length; i++) {
            a2.add(Integer.parseInt(str[i]));
        }
        System.out.print("ZhiShu2: ");
        str = sc.nextLine().split(",");
        for(int i = 0; i < str.length; i++) {
            e2.add(Integer.parseInt(str[i]));
        }
        //
		add(a1,e1,a2,e2);
        mult(a1,e1,a2,e2);
    }
}
